﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include<vector>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
using namespace std;

//int main()
//
//{
//
//	string a = "hello world";
//
//	string b = a;
//	
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	string c = b;
//
//	c = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	a = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	return 0;
//
//}

//int main()
//
//{
//
//	string str("Hello Bit.");
//
//	str.reserve(111);
//
//	str.resize(5);
//
//	str.reserve(50);
//
//	cout << str.size() << ":" << str.capacity() << endl;
//
//	return 0;
//
//}

/*int main()

{

	string strText = "How are you?";

	string strSeparator = " ";

	string strResult;

	int size_pos = 0;

	int size_prev_pos = 0;

	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)

	{

		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);

		cout << strResult << " ";

		size_prev_pos = ++size_pos;

	}

	if (size_prev_pos != strText.size())

	{

		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);

		cout << strResult << " ";

	}

	cout << endl;

	return 0;

}*/


//int myAtoi(string str) {
//    char zero = '0';
//    char space = ' ';
//    int pos = 0;
//    int flag = 1;
//    int a_i = 0;
//    int arr[200] = { 0 };
//    int res = 0;
//    while (str[pos] == zero || str[pos] == space)
//        pos++;
//    if (str[pos] == '-')
//    {
//        flag = -flag;
//        pos++;
//    }
//    while (str[pos] <= 57 && str[pos] >= 48)
//    {
//        arr[a_i++] = str[pos++] - 48;
//    }
//    for (int i = 0; i < a_i; i++)
//    {
//        res += arr[i] * (int)pow(10, a_i-i-1);
//    }
//    return res * flag;
//}
//bool isPalindrome(string s) {
//	int n = s.size();
//	int left = 0, right = n - 1;
//	while (left <= n - 1 && right >= 0)
//	{
//		while (left < right && (!isalnum(s[left]) && !isalpha(s[left])))
//			left++;
//		while (left < right && (!isalnum(s[right]) && !isalpha(s[right])))
//			right--;
//		if (tolower(s[left]) == tolower(s[right]))
//		{
//			left++;
//			right--;
//		}
//		else
//			return false;
//	}
//	return true;
//}

//string reverseWords(string s) {
//	int n = s.size();
//	for (int i = 0; i < n; i++)
//	{
//		int count = 0;
//		count++;
//		if (s[i] == ' ')
//		{
//			int left = i - count;
//			int right = i - 1;
//			while (left < right)
//			{
//				swap(s[left++], s[right++]);
//			}
//		}
//	}
//	return s;
//}


//string reverseWords(string s) {
//	int length = s.length();
//	int i = 0;
//	while (i < length) {
//		int start = i;
//		while (i < length && s[i] != ' ') {
//			i++;
//		}
//
//		int left = start, right = i - 1;
//		while (left < right) {
//			swap(s[left], s[right]);
//			left++;
//			right--;
//		}
//		while (i < length && s[i] == ' ') {
//			i++;
//		}
//	}
//	return s;
//}
string multiply(string num1, string num2) {
	long N1 = 0;
	long N2 = 0;
	int l1 = num1.size();
	int l2 = num2.size();
	int i = 0,j=0;
	while (i<l1)
	{
		N1 = (num1[i++] - '0') + N1 * 10;
	}
	while (j<l2)
	{
		N2 = (num2[j++] - '0') + N2 * 10;
	}
	long long ret = N1 * N2;
	string res = to_string(ret);
	return res;
}

int main()
{

	string num1,num2;
	cin >> num1>>num2;
	cout << multiply(num1,num2) << endl;
    return 0;
}
